//
// Created by 16933 on 2022/11/20.
//

#ifndef DATASTRUCTURE_PROJECT_MANAGEMENT_H
#define DATASTRUCTURE_PROJECT_MANAGEMENT_H
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include "Menu.h"
#include "SystemControl.h"
#include "Algorithm_Dijkstra.h"
#include "Algorithm_Floyd.h"
extern char* default_place_name[];

typedef enum
{
    NODE_1 = 0,
    BLANK_1 = 1,
    NODE_2 = 2,
    BLANK_2 = 3,
    EDGE = 4,
    BRANCH = 5,
    END = 6,

}ExtracteStep;

void System_Start(SystemControler* system_controler,MGraph* graph_data,DijkstraControler* dijkstra_controler,FloydControler* floyd_controler);
void Information_Entry(SystemControler* system_controler);
void Data_Extracte(char* data_input,int* data_output);
void Name_Extracte(char* data_input,char* data_output);
void Configuration_Entry(SystemControler* system_controler);
void Adjacency_Matrix_Init(MGraph * data,int * processed_data);

void MainMenu_Control(SystemControler* system_controler);
void MapDataSelectionMenu_Control(SystemControler* system_controler);
void Origin_LocationSelectionMenu_Control(SystemControler* system_controler);
void Destination_LocationSelectionMenu_Control(SystemControler* system_controler);
void AlgorithmSelectionMenu_Control(SystemControler* system_controler);
void RouteOutputMenu_Control(SystemControler* system_controler);
void Configuration_Import_Control(SystemControler* system_controler);
void Work_Start(SystemControler* system_controler);

#endif //DATASTRUCTURE_PROJECT_MANAGEMENT_H
